Non-volatile memory systems, such as flash memory, have been widely adopted for use in consumer products. Flash memory may be found in different forms, for example in the form of a portable memory card that can be carried between host devices or as a solid state disk (SSD) embedded in a host device. The flash controller receives commands, such as read commands, from a host. The commands may include admin (e.g. commands for device configuration and maintenance) as well as operation commands (e.g. commands for accessing the NAND media including erase, write and read commands). Since the timing and the order of those commands are unknown, they may be considered to be in a random sequence. Random cache read operation may only be implemented when the controller has many read commands waiting for execution. The controller then terminates random cache read operations when the command queue is empty. This functionality may decrease the system performance since the random cache read sequence may be terminated earlier than necessary. In some instances, the host may send new read commands at that time. Those new commands may not use the previous random cache read sequence.